import http from '../utils/request.js';
import config from '../utils/config.js';

// 商品API服务
const productApi = {
    /**
     * 获取商品列表
     * @param {Object} params - 查询参数
     * @returns {Promise}
     */
    getProductList(params = {}) {
        return http.get(config.API.product.list, params);
    },
    
    /**
     * 获取商品详情
     * @param {String|Number} id - 商品ID
     * @returns {Promise}
     */
    getProductDetail(id) {
        return http.get(`${config.API.product.detail}/${id}`);
    },
    
    /**
     * 创建商品
     * @param {Object} data - 商品数据
     * @returns {Promise}
     */
    createProduct(data) {
        return http.post(config.API.product.create, data);
    },
    
    /**
     * 更新商品
     * @param {String|Number} id - 商品ID
     * @param {Object} data - 商品数据
     * @returns {Promise}
     */
    updateProduct(id, data) {
        return http.put(`${config.API.product.update}/${id}`, data);
    },
    
    /**
     * 删除商品
     * @param {String|Number} id - 商品ID
     * @returns {Promise}
     */
    deleteProduct(id) {
        return http.delete(`${config.API.product.delete}/${id}`);
    },
    
    /**
     * 上传商品图片
     * @param {String} filePath - 文件路径
     * @returns {Promise}
     */
    uploadProductImage(filePath) {
        return http.upload(`${config.API.product.upload}`, filePath);
    },
    
    /**
     * 生成SKU编码
     * @param {Object} params - 参数对象
     * @param {String} params.categoryCode - 商品类别代号(ES/XL/SL/JZ/XZ/QT)
     * @param {String} params.dateStr - 日期字符串(YYMMDD)
     * @param {Number} params.skuCount - 需要生成的SKU数量
     * @param {String|Number|null} params.productId - 商品ID(新品为null)
     * @returns {Promise} - 返回生成的SKU编码数组
     */
    generateSkuCodes(params) {
        // 确保参数是JSON格式
        return http.post(config.API.product.generateSkuCodes, params);
    }
};

export default productApi; 